#!/bin/bash

echo '--------------- let ---------------'
no1=4
no2=5
let result=no1+no2  # 1-let 命令可以直接执行基本的算术操作。当使用 let 时,变量名之前不需要再添加 $
echo $result

echo '---------------'

let no1++
echo $no1

echo '---------------'

let no1--
echo $no1

echo '---------------'

let no1+=6
let no2-=6
echo $no1
echo $no2

echo '--------------- $[ ] ---------------' # 2-操作符 [] 的使用方法和 let 命令类似
result=$[ no1 + no2]
echo $result

echo '---------------'
no1=$[ $no1 + 5] # 在 [] 中也可以使用 $ 前缀
echo $no1

echo '--------------- $(( )) ---------------' # 3-也可以使用 (()) ,但使用 (()) 时,变量名之前需要加上 $
result=$((no1 + 50))
echo $result

echo '--------------- $(expr ) ---------------'
result=`expr 3+4`
result=$(expr $no1 + 5)
echo $result


# 4-bc 是一个用于数学运算的高级工具
# 借助它执行浮点数运算并应用一些高级函数
echo '--------------- bc ---------------'
echo "4 * 0.56" | bc

no=54;
result=`echo "$no * 1.5" | bc`
echo $result

# 参数 scale=2 将小数位个数设置为2
echo "scale=2;3/8" | bc

# 进制转换
# 用 bc 可以将一种进制系统转换为另一种
no=100
echo "obase=2;$no" | bc             # obase 输出的进制

no=1100100
echo "obase=10;ibase=2;$no" | bc    # ibase 输入的进制

# 计算平方以及平方根。
echo "sqrt(100)" | bc   # Square root 开平方
echo "10^10" | bc       # Square      幂运算